/**
 * 将 ISO 格式的时间字符串转换为本地时间的 `YYYY年MM月DD日 HH:MM:SS` 格式。
 *
 * @param {string} isoString - ISO 格式的时间字符串，例如 `2025-01-14T07:36:37.000Z`。
 * @returns {string} 格式化后的时间字符串，格式为 `YYYY年MM月DD日 HH:MM:SS`。
 *
 * @example
 * const createdAt = '2025-01-14T07:36:37.000Z';
 * const formattedDateTime = formatDateTime(createdAt);
 * console.log(formattedDateTime); // 输出：2025年01月14日 15:36:37
 */
function formatDateTime(isoString) {
  const date = new Date(isoString);

  // 提取年、月、日、时、分、秒
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始，需要加 1
  const day = String(date.getDate()).padStart(2, '0');
  const hours = String(date.getHours()).padStart(2, '0');
  const minutes = String(date.getMinutes()).padStart(2, '0');
  const seconds = String(date.getSeconds()).padStart(2, '0');

  // 拼接成目标格式
  return `${year}年${month}月${day}日 ${hours}:${minutes}:${seconds}`;
}

/**
 * 计算当前时间与给定时间之间的时间差，返回格式为 `X天X小时`。
 *
 * @param {string} dateTime - ISO 格式的时间字符串，例如 `2023-10-14T12:34:56.789Z`。
 * @returns {string} 时间差，格式为 `X天X小时`。
 *
 * @example
 * const dateTime = '2023-10-14T12:34:56.789Z';
 * const result = getTimeDifference(dateTime);
 * console.log(result); // 输出：1天2小时
 */
function getTimeDifference(dateTime) {
  const now = new Date(); // 当前时间
  const targetDate = new Date(dateTime); // 目标时间

  // 计算时间差（毫秒）
  const timeDiff = now - targetDate;

  // 将时间差转换为天和小时
  const days = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); // 天
  const hours = Math.floor((timeDiff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); // 小时

  // 返回格式化的结果
  return `${days}天${hours}小时`;
}



module.exports = {formatDateTime, getTimeDifference}